home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / c / flash-0.4.3.lha / flash-0.4.3 / Lib / PORTING < prev    next >
Text File  |  1999-02-21  |  3KB  |  72 lines

  1. Porting Notes        2-15-99
  2. -------------
  3.  
  4. This explains the part of the code that must be adapted
  5. to other platforms.
  6. The code has been re-written to make porting easier.
  7.  
  8. Technical approach
  9. ------------------
  10. The whole rendering engine works in a hidden buffer
  11. called 'canvas'. This buffer can be described with a couple
  12. of parameters. The buffer must consist of consecutive
  13. memory bytes (linear buffer) this is the only constraint.
  14. The parameters to describe the buffer are :
  15.     - canvasBuffer: a point to the buffer memory (of course)
  16.     - bpl: bytes per line.
  17.     - bpp: bytes per pixel.
  18.     - pad: scanline padding in bytes.
  19. Enough memory must be allocated to contain
  20. targetWidth * targetHeight pixels.
  21.  
  22. The engine works with colors. The display device has its
  23. way of handling colors and it can be described by :
  24.     - redMask: the relevant bit mask in the pixel value for red.
  25.     - greenMask: the relevant bit mask in the pixel value for green.
  26.     - blueMask: the relevant bit mask in the pixel value for blue.
  27. Then depending on the display depth there are a collection of
  28. color pixel computation functions in which the most suitable must
  29. be picked up. If needed, you can write your own routine.
  30.  
  31. Events
  32. ------
  33. Events are handled though Flash Event Definition, so remap your
  34. own Event types onto these types.
  35. Time routines may be Unix specific.
  36.  
  37. Sounds
  38. ------
  39. A mixer has been written to help in porting the sound code.
  40. You can specify the audio capabilities of your sound device
  41. (rate, channels, bits) and the mixer should handle all this
  42. correctly.
  43.  
  44. Files
  45. -----
  46. graphic.cc is the unique file to modify for porting graphics stuff.
  47. No other files contains dependencies on X11.
  48. Methods that are platform independent are tagged with the comment
  49. ///////////// PLATFORM INDEPENDENT
  50. So don not touch these methods.
  51. The GraphicDevice class constructor has to be re-written to fit your
  52. platform specificities. Other methods that must be seen are :
  53. GraphicDevice::setForegroundColor    Set current foreground color.
  54. GraphicDevice::setHandCursor        Change cursor shape when on a button.
  55. GraphicDevice::displayCanvas        Copy the canvas into the actual window.
  56. GraphicDevice::drawLine            Variable width line drawer.
  57. (I have not found a generic algorithm to make the player more independent).
  58. GraphicDevice::synchronize        Special call made to synchronize
  59.                     serialized graphic calls.
  60. (This is used by X11 to commit pending drawing actions, for instance.
  61.  You may not need it).
  62.  
  63. sound.cc is the sound code part. Look at the SoundMixer class to adapt
  64. to your platform.
  65.  
  66. flash.cc is the engine frontend, so you will have to change it a bit.
  67.  
  68.  
  69. Please tell me if you succeed in porting to a new platform.
  70.  
  71.     -Olivier Debon   <odebon@club-internet.fr>
  72.